package com.jml.bean.属性注册编辑器;


import java.beans.PropertyEditorSupport;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @author:jml
 * @date: 2020/4/28 0028 22:43
 * @description：自定义属性编辑器
 *
 * 放在AbstractBeanFactory的customEditors中
 * Map属性值是通过后置处理器放置在factory中
 *
 * 首次实例化操作是后置处理器处理中放在AbstractBeanFactory的customEditors中，
 * 然后实例其他实体类的时候初始化BeanWrapperImpl的时候，会把这个放在从factory中有放到对应的BeanWrapperImpl中
 * 就是PropertyEditorRegistrySupport类的customEditors中
 */
public class MyDatePropertyEditor extends PropertyEditorSupport {

	private String format = "yyyy-MM-dd";

	public void setFormat(String format) {
		this.format = format;
	}

	//重写setAsText方法,把String转化为Date，把值好复制给属性
	@Override
	public void setAsText(String arg0) throws IllegalArgumentException {
		System.out.println("arg0:"+arg0);
		SimpleDateFormat sdf = new SimpleDateFormat(format);
		try {
			Date d = sdf.parse(arg0);
			this.setValue(d);
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}
